import java.util.Random;
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        // 打印1~5
        // for(int i = 0;i < 5;i++) {
        //     System.out.println("Hello World");
        // }

        // 打印5~1
        // for(int i = 1;i <= 5;i++) {
        //     System.out.println(i);
        // }

        // for(int i = 5;i > 0;i--) {
        //     System.out.println(i);
        // }

        // 短线重连
        // for(int i = 0;i < 5;i++) {
        //     System.out.println("断线重连");
        // }

        // 求和1~5
        // int sum = 0;
        // for(int i = 1;i <= 5;i++) {
        //     sum += i;
        // }
        // System.out.println(sum);

        // 求1~100的偶数和
        // int sum = 0;
        // for(int i = 0;i <= 100;i +=2) {
        //     sum += i;
        // }
        // System.out.println(sum);

        // 统计满足条件的数字
        // Scanner sc = new Scanner(System.in);
        // System.out.println("请输入开始的数字:");
        // int start = sc.nextInt();
        // System.out.println("请输入结束的数字:");
        // int end = sc.nextInt();
        // int count = 0;
        // for(int i = start;i <= end;i++) {
        //     if (i % 3 == 0 && i % 5 == 0) {
        //         count++;
        //     }
        // }
        // System.out.println(count);

        // 打印折纸的次数
        // double i = 0.1;
        // int count = 0;
        // while(i < 8844430) {
        //     i *= 2;
        //     count++;
        //
        // }
        // System.out.println(count);

        // 回文数
        // Scanner sc = new Scanner(System.in);
        // System.out.println("请输入一个数字:");
        // int number = sc.nextInt();
        // int input = number;
        // int newNumber = 0;
        // while(number != 0) {
        //     int tmp = number % 10;
        //     number /= 10;
        //     newNumber = newNumber*10 + tmp;
        // }
        // // System.out.println(newNumber);
        // boolean result = (input == newNumber);
        // System.out.println(result);

        // 求商和余数
        // Scanner sc = new Scanner(System.in);
        // System.out.println("请输入被除数:");
        // int number1 = sc.nextInt();
        // System.out.println("请输入除数:");
        // int number2 = sc.nextInt();
        // int count = 0;
        // while(number1 >= number2) {
        //     number1 = number1 - number2;
        //     count++;
        // }
        // System.out.println("商:"+count);
        // System.out.println("余数:"+number1);

        // 数组的定义
        // 1.数据类型 []数组名(习惯)
        // 2.数据类型 数组名[]
        // 数组静态初始化
        // 完整格式:数据类型[]数组名 = new 数据类型[]{元素1,元素2,元素3...};
        // 简写格式:数据类型[]数组名 = {元素1,元素2,元素3...};

        // int []arr = {1,2,3,4,5};
        // System.out.println(arr);//[I@4eec7777
        //[:表示当前是一个地址
        // I:表示当前数组里面的元素都是int类型
        //@:表示一个间隔符号.(固定格式)
        // 4eec7777:才是真正的地址值(十六进制)
        // 平时我们习惯性的会把这个整体叫做数组的地址值.

        // 自动的快速生成数组的遍历方式
        // IDEA提供的
        // 数组名.fori
        // for (int i = 0; i < arr.length; i++) {
        //
        // }

        // 遍历数组并求和
        // int []arr = {1,2,3,4,5};
        // int sum = 0;
        // for (int i = 0; i < arr.length; i++) {
        //     sum += arr[i];
        // }
        // System.out.println(sum);

        // 统计个数
        // int []arr = {1,2,3,4,5,6,7,8,9,10};
        // int count = 0;
        // for (int i = 0; i < arr.length; i++) {
        //     if(arr[i] % 3 == 0) {
        //         count++;
        //     }
        // }
        // System.out.println(count);

        // 变化数据
        // int []arr = {1,2,3,4,5,6,7,8,9,10};
        // for (int i = 0; i < arr.length; i++) {
        //     if(arr[i] % 2 == 0) {
        //         arr[i] /= 2;
        //     } else {
        //         arr[i] *= 2;
        //     }
        //     System.out.println(arr[i]);
        // }

        // 数组动态初始化
        // 格式:
        // 数据类型[] 数组名 = new 数据类型[数组的长度];
        // 在创建的时候,由我们自己指定数组的长度,由虚拟机给出默认的初始值
        // 数组默认初始化的规律
        // 整数类型:默认初始化值为0
        // 小数类型:默认初始化值为0.0
        // 字符类型:默认初始化值为'\u0000' 空格
        // 布尔类型:默认初始化值为false
        // 应用数据类型:默认初始化值为 null

        // 打乱数据
        // int[] arr = {1,2,3,4,5};
        // Random r = new Random();
        // for (int i = 0; i < arr.length; i++) {
        //     int randomIndex = r.nextInt(arr.length);
        //     int tmp = arr[i];
        //     arr[i] = arr[randomIndex];
        //     arr[randomIndex] = tmp;
        // }
        // for (int i = 0; i < arr.length; i++) {
        //     System.out.print(arr[i] + " ");
        // }


        // 方法的定义格式
        // public static 返回值类型 方法名(参数) {
        //     方法体;
        //     return 返回值;
        // }

        // 方法的重载
        // 在同一个类中,定义多个同名的方法,这些同名的方法具有同种的功能.
        //    每个方法具有不同的参数形式或参数个数,这些同名的方法,就构成了重载关系.
        //    简单记忆:同一个类中,方法名相同,参数不同的方法.与返回值无关.
        // 参数顺序不同可以构成重载,但是不建议.
        //    Java虚拟机会通过参数的不同来区分同名的方法.

        // 利用方法重载的思想,设计比较两个整数是否相同的方法.
        // 要求:兼容全整数类型(byte,short,int,long)
        // int a = 1;
        // int b = 2;
        // compare(a, b);
        // byte c = 2;
        // byte d = 2;
        // compare(c, d);
        // short e = 1;
        // short f = 1;
        // compare(e, f);
        // long g = 1L;
        // long h = 2L;
        // compare(g, h);

        // int[] arr = {1, 2, 3, 4, 5};
        // func(arr);
        // int[] arr = {1, 3, 2, 5, 4};
        // int max = getMax(arr);
        // System.out.println(max);

        // int[] arr = {1, 2, 3, 4, 5};
        // boolean result = find(arr, 6);
        // System.out.println(result);

        // int[] arr = {1, 2, 3, 4, 5};
        // int[] newArr = copyOfRange(arr, 1, 3);
        // for (int i = 0; i < newArr.length; i++) {
        //     System.out.print(newArr[i] + " ");
        // }


    }

    // 定义一个方法copyOfRange(int[]arr,int from,int to)
    // 功能:将数组arr中从索引from(包含from)开始,到索引to结束(不包含to)的元素复制到新数组中,将新数组返回
    // public static int[] copyOfRange(int[] arr, int from, int to) {
    //     int len = to - from;
    //     int[] newArr = new int[len];
    //     int index = 0;
    //     for (int i = from; i < to; i++) {
    //         newArr[index] = arr[i];
    //         index++;
    //     }
    //     return newArr;
    // }


// 定义一个方法判断数组中的某个数是否存在,将结果返回给调用处
// public static boolean find(int[] arr, int key) {
//     for (int i = 0; i < arr.length; i++) {
//         if (arr[i] == key) {
//             return true;
//         }
//     }
//     return false;
// }


// 设计一个方法求数组的最大值,并将最大值返回
// public static int getMax(int[] arr) {
//     int max = arr[0];
//     for (int i = 1; i < arr.length; i++) {
//         if(arr[i] > max) {
//             max = arr[i];
//         }
//     }
//     return max;
// }

// 设计一个方法用于遍历数组,要求遍历的结果是在一行上的
// public static void func(int[] arr) {
//     for (int i = 0; i < arr.length; i++) {
//         if (i == 0) {
//             System.out.print("{" + arr[0] + ", ");
//         } else if (i == arr.length - 1) {
//             System.out.print(arr[i] + "}");
//         } else {
//             System.out.print(arr[i] + ", ");
//         }
//     }
// }

// public static void func(int[] arr,int len){
//     for (int i = 0; i < len; i++) {
//         System.out.print(arr[i] + " ");
//     }
// }


// public static void compare(int x, int y) {
//     System.out.println("int");
//     if (x == y) {
//         System.out.println("==");
//     } else {
//         System.out.println("!=");
//     }
// }

// public static void compare(byte x, byte y) {
//         System.out.println("byte");
//     if (x == y) {
//         System.out.println("==");
//     } else {
//         System.out.println("!=");
//     }
// }

// public static void compare(short x, short y) {
//         System.out.println("short");
//     if (x == y) {
//         System.out.println("==");
//     } else {
//         System.out.println("!=");
//     }
// }

// public static void compare(long x, long y) {
//         System.out.println("long");
//     if (x == y) {
//         System.out.println("==");
//     } else {
//         System.out.println("!=");
//     }
// }
}

